class agent(object):
  node_id = 0

  def __init__(self):
    self.node_id = agent.node_id
    agent.node_id += 1

  def transmit(self, agent_out, pkt, max_trans_f, route_hint=None):
    trans_f = agent_out.accept(self, pkt, max_trans_f, route_hint)
    pkt.u_first_f = pkt.first_f + trans_f
    return trans_f

  def accept(self, src_node, inc_pkt, max_trans_f, route_hint=None):
    return 0

  def process(self):
    return 1

  def commit(self):
    return 1
